package Offer;
/*
*数值的n正次方
*   利用二进制,x^n,将n换成二进制循环累乘, 时间复杂度会降到log2n
* */
public class Offer16myPow {
    public double myPow(double x, int n) {
        long b=n;
        double res=1.0;
        if(b<0){
            b=-b;
            x=1/x;
        }
        while(b>0){
            if((b&1)==1){
                res*=x;
            }
            //用x表示下一为结果,美走一个二进制都要成一次 x,不管是不是 1
            x*=x;
            b>>=1;
        }
        return res;
    }
}
